package com.example.demo.huawei;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Scanner;
import java.util.Set;

/**
 * 学生排名 智能成绩表
 */
public class Main61 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 人数
        int n = sc.nextInt();
        // 科目
        int m = sc.nextInt();
        //        System.out.println(n);
        //        System.out.println(m);

        Set<String> kemus = new LinkedHashSet<>();
        String[] kemus2 = new String[m];
        for (int i = 0; i < m; i++) {
            String next = sc.next();
            kemus.add(next);
            kemus2[i] = next;
        }

        // 每个学生总分数
        Map<String, Integer> sumMap = new HashMap<>();
        // 学生每一科目分数
        Map<String, Map<String, Integer>> stuMap = new HashMap<>();
        for (int i = 0; i < n; i++) {
            String name = sc.next();
            Map<String, Integer> map = new HashMap<>();
            int sum = 0;
            for (int j = 1; j <= m; j++) {
                int nextInt = sc.nextInt();
                map.put(kemus2[j - 1], nextInt);
                stuMap.put(name, map);
                sum += nextInt;
            }
            sumMap.put(name, sum);
        }
        //        System.out.println(sumMap);
        //        System.out.println(stuMap);

        sc.nextLine();
        String ke = sc.nextLine();
        //        System.out.println(ke);


        List<String> list = new ArrayList<>(sumMap.keySet());
        list.sort((o1, o2) -> {
            if (kemus.contains(ke) && !stuMap.get(o2).get(ke).equals(stuMap.get(o1).get(ke))) { // 需要按照单科排名，且单科分数不等
                return stuMap.get(o2).get(ke) - stuMap.get(o1).get(ke);
            } else if (kemus.contains(ke) && stuMap.get(o2).get(ke).equals(stuMap.get(o1).get(ke))) {// 需要按照单科排名，且单科分数相等
                return o1.compareTo(o2);
            } else if (!sumMap.get(o2).equals(sumMap.get(o1))) { //不需要按照单科排名，看总分，总分不相等
                return sumMap.get(o2) - sumMap.get(o1);
            } else {
                //不需要按照单科排名，看总分，总分相等
                return o1.compareTo(o2);
            }
        });
        Optional<String> reduce = list.stream().reduce((a, b) -> a + " " + b);
        System.out.println(reduce.get());
    }
}
